package com.yidu.erp.action.BeyondDrug;

import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.UUID;

import javax.annotation.Resource;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import com.yidu.common.SsmMessage;
import com.yidu.common.Tools;
import com.yidu.common.Ware;
import com.yidu.erp.model.BeyondWare;
import com.yidu.erp.model.BeyondWaretype;
import com.yidu.erp.service.BeyondDrug.DrugService;

@Controller
@RequestMapping("drug")
public class DrugAction {
	@Resource
	private DrugService drugService;//商品抽象类
	
	/**
	 * 根据商品名称查询商品信息
	 */
	@ResponseBody
	@RequestMapping("/selectMes")
	public BeyondWare selectMes(String wareName){
		//调用根据商品名称查询商品信息的方法
		BeyondWare mcWare=drugService.selectMes(wareName);
		//返回一个类
		return mcWare;		
	}

	/**
	 * 查询商品名称的方法
	 */
	@ResponseBody
	@RequestMapping("/selectWare")
	public List<Ware> selectWare(String term){
		//调用查询商品信息的方法
		List<Ware> list=drugService.selectWare(term);
		//返回一个类
		return list;
	}
	
	/**
	 * 查询商品表
	 * @param record
	 * @return
	 */
	@ResponseBody
	@RequestMapping("/selectAll")
	public Map<String, Object> selectAll(BeyondWare record){
		//map集合
		Map<String, Object> map = new HashMap<String,Object>();
		//调用查询商品的方法
		List<BeyondWare> wareList=drugService.selectAll(record);
		//用map进行传值
		map.put("data", wareList);
		//显示几行
		map.put("count","");
		//第几行开始
		map.put("code", 0);
		//消息
		map.put("msg", "");
		//返回map
		return map;
		
	}
	
	/**
	 * 商品类型查询全部
	 * @return
	 */
	@RequestMapping("/selectAllType")
	@ResponseBody
	public Map<String, Object> selectAllType(BeyondWaretype beyondWaretype) {
		//map集合
		Map<String, Object> map = new HashMap<String,Object>();
		//把调用方法存到集合里
		List<BeyondWaretype>wareType=drugService.selectType( beyondWaretype);
		//map传值
		map.put("rows", wareType);
		//返回map
		return map;
		
	}
	
	
	/**
	 * 商品删除
	 * @param id
	 * @return
	 */
	@RequestMapping("/deletee")
	@ResponseBody
	public SsmMessage  deletee(String wareId){
		//消息对象
		SsmMessage mes=new SsmMessage();
		//调用抽象类里面的根据ID删除的方法
		int rows=drugService.deleteByPrimaryKey(wareId);	
		//判断消息状态大于1则成功,没有就等于失败
		if(rows>0){
			mes.setMes(SsmMessage.SUCCESS_MES);
			mes.setState(SsmMessage.SUCCESS);
		}else{
			mes.setMes(SsmMessage.ERROR_MES);
			mes.setState(SsmMessage.ERROR);
		}
		//返回消息对象
		return mes;		
	}
	/**
	 * 商品分类删除
	 * @param id
	 * @return
	 */
	@RequestMapping("/deleteType")
	@ResponseBody
	public SsmMessage  deleteType(String typeId){
		//消息对象
		SsmMessage mes=new SsmMessage();
		//调用抽象类里面的根据ID删除的方法
		int rows=drugService.deleteTypeByPrimaryKey(typeId);	
		//判断消息状态大于1则成功,没有就等于失败
		if(rows>0){
			mes.setMes(SsmMessage.SUCCESS_MES);
			mes.setState(SsmMessage.SUCCESS);
		}else{
			mes.setMes(SsmMessage.ERROR_MES);
			mes.setState(SsmMessage.ERROR);
		}
		//返回消息对象
		return mes;
	}
		
	
	/**
	 * 增加或者修改
	 * @param record
	 * @return
	 */
	@RequestMapping("/addOrUpdateAjax")
	@ResponseBody
	public SsmMessage addOrUpdateAjax(BeyondWaretype record){
		//消息对象
		SsmMessage mes = new SsmMessage();
		int rs=0;
		//首先根据字符串判断是否为空,再调用抽象类里面的增改方法
		if(Tools.isEmpty(record.getTypeId())){
			rs=drugService.insertSelective(record);
		}else{
			rs=drugService.updateByPrimaryKeySelective(record);
		}
		//判断消息状态大于1则成功,否则就等于失败
		if(rs>0){
			mes.setMes(SsmMessage.SUCCESS_MES);
			mes.setState(SsmMessage.SUCCESS);
		}else{
			mes.setMes(SsmMessage.ERROR_MES);
			mes.setState(SsmMessage.ERROR);
		}
		//返回消息对象
		return mes;
	}
}
